#ifndef _GIZMORENDERPASS_H_
#define _GIZMORENDERPASS_H_
#include <SERender/Renderer/RenderPass/RenderPass.h>
#include <SERender/Resourses/FrameBuffer.h>
#include <SEEdit/Render/RenderFeature/DebugRenderFeature.h>
#include <optional>

namespace SEngine
{
    class GizmoRenderPass : public RenderPass
    {
    public:
        GizmoRenderPass(Renderer & renderer);
        virtual ~GizmoRenderPass() = default;
        virtual void BeginFrame() override;
        virtual void DrawFrame() override;
        virtual void EndFrame() override {}
        ArrowID GetArrowID(int x, int y);
        std::optional<uint8_t> GetID(int x, int y);

    private:
        std::unique_ptr<FrameBuffer> m_idFBO;
        std::unique_ptr<Texture2D> m_idMap;
        std::unique_ptr<FrameBuffer> m_lightFBO;
        std::unique_ptr<Texture2D> m_lightMap;
    };
} // namespace SEngine


#endif